# 作者: YYJ
# 2025年07月28日13时41分54秒
# 2486249622@qq.com

from abc import abstractmethod, ABCMeta


class Payment(metaclass=ABCMeta):  # 抽象出的共同功能 Pay
    @abstractmethod
    def pay(self, money):
        pass  # 这里面的 pay 来源于下面类中的方法pay,意思把这个方法规范为统一的标准， 另外建一个规范类 Payment


class Alipay(Payment):
    def paying(self, money):  # 这里出现 paying 和我们规范的 pay 不一样， 那么在实例化Alipay的时候就会报错

        print('支付宝支付了')

class Weicht(Payment):
    def pay(self, money):
        print('微信支付了')

def pay(pay_obj, money):
    pay_obj.pay(money)


p = Alipay()    # 抽象类若在子类中未重写，则在实例化时会报错
